import { DataAuthOperationEnum } from '@/enums/dataAuthOperationEnum';
import { FilterGroup } from '@/utils/common/types';

/** 输出DTO: 角色数据权限 */
export interface EntityRoleOutputDto {
  /**  编号 */
  Id: string | bigint;
  /**  角色编号 */
  RoleId: string | bigint;
  /** 角色名称 */
  RoleName: string;
  /** 数据编号 */
  EntityId: string | bigint;
  /** 业务实体名称 */
  EntityName: string;
  /**  业务实体类型 */
  EntityType: string;
  /**  数据权限操作 */
  Operation: DataAuthOperationEnum;
  /** 过滤条件组 */
  FilterGroup: FilterGroup;
  /**  是否锁定 */
  IsLocked: boolean;
  /**  创建时间 */
  CreatedTime: Date;
  /**  更新时间 */
  UpdatedTime?: Date | null;
  /**  数据版本 */
  DataVersion: string | bigint;

  /**  是否可更新的数据权限状态 */
  Updatable: boolean;
  /**  是否可删除的数据权限状态 */
  Deletable: boolean;
}

/** 输入DTO：实体角色信息 */
export interface EntityRoleInputDto {
  /**  编号 */
  Id: string | bigint;
  /**  角色编号 */
  RoleId: string | bigint;
  /** 数据编号 */
  EntityId: string | bigint;
  /**  数据权限操作 */
  Operation: DataAuthOperationEnum;
  /** 过滤条件组 */
  FilterGroup: FilterGroup;
  /**  是否锁定 */
  IsLocked: boolean;

  /**  数据版本 */
  DataVersion: string | bigint;
}
